/**
 *  @file JSONQuickParser.h
 */
#ifndef _JSONQUICKPARSER_H_
#define _JSONQUICKPARSER_H_

#include "../common/BaseObject.h"
#include "../io/Reader.h"
#include "JSONHandler.h"

namespace cppflib
{

namespace json
{

/**
 *  A SAX-like json parser
 */
class _DLLAPI JSONQuickParser : public BaseObject
{
private:
    bool markErrorForDupName;

public:
    JSONQuickParser();
	explicit JSONQuickParser(bool markErrorForDupName);
	virtual ~JSONQuickParser(void);

    void Parse(pcwstr_t jsonFilePath, JSONHandler &handler);
    void Parse(io::Reader &reader, JSONHandler &handler);
};

} // end of namespace json

} // end of namespace cppflib


#endif
